package com.alin.swing.component.base;
import javax.swing.*;
import java.awt.*;
/**
 * @ClassName J1JLabelMain
 * @Description: 标签:主要用于展示 文本 或 图片，也可以 同时显示文本和图片。
 * @Author chenlin
 * @Date 2021/6/7 14:19
 * @Version V1.0
 **/
public class J1JLabelMain {
    public J1JLabelMain(){
        JFrame jf = new JFrame("测试窗口");
        jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

        // 创建内容面板，默认使用流式布局
        JPanel panel = new JPanel();

        /*
         * 只显示文本
         */
        JLabel label01 = new JLabel();
        label01.setText("Only Text");
        // 设置字体，null 表示使用默认字体
        label01.setFont(new Font(null, Font.PLAIN, 25));
        panel.add(label01);

        /*
         * 只显示图片
         */
        JLabel label02 = new JLabel();
        label02.setSize(100,100);
        //TODO 图片无法展示
        label02.setIcon(new ImageIcon("img/DOG-1.jpg"));
        panel.add(label02);

        /*
         * 同时显示文本和图片
         */
        JLabel label03 = new JLabel();
        //TODO 图片无法展示
        label03.setText("文本和图片");
        label03.setIcon(new ImageIcon("img/DOG-2.jpg"));
        //水平方向文本在图片中心
        label03.setHorizontalTextPosition(SwingConstants.CENTER);
        // 垂直方向文本在图片下方
        label03.setVerticalTextPosition(SwingConstants.BOTTOM);
        panel.add(label03);

        jf.setContentPane(panel);
        jf.pack();
        jf.setLocationRelativeTo(null);
        jf.setVisible(true);
    }

    public static void main(String[] args) {
        new J1JLabelMain();
    }
}
